﻿using System;
using System.Collections.Generic;
using System.Text;

namespace Grafeas.Log
{
    /// <summary>
    /// Grafeas Logger Object.
    /// </summary>
    public interface ILogger
    {
        /// <summary>
        /// Logs an information message.
        /// </summary>
        /// <param name="message">Message to be logged.</param>
        /// <param name="args">Additional parameters to the logged message.</param>
        void Log(string message, params object[] args);

        /// <summary>
        /// Logs an error message.
        /// </summary>
        /// <param name="message">Message to be logged.</param>
        /// <param name="args">Additional parameters to the logged message.</param>
        void Error(string message, params object[] args);

        /// <summary>
        /// Logs a debug message.
        /// </summary>
        /// <param name="message">Message to be logged.</param>
        /// <param name="args">Additional parameters to the logged message.</param>
        void Debug(string message, params object[] args);

        /// <summary>
        /// Logs a warning message.
        /// </summary>
        /// <param name="message">Message to be logged.</param>
        /// <param name="args">Additional parameters to the logged message.</param>
        void Warn(string message, params object[] args);

        /// <summary>
        /// Gets the current appender.
        /// </summary>
        /// <returns>The current appender.</returns>
        //ILogAppender CurrentAppender();
    }
}
